With the widespread and ever mushrooming use of network-based communications, a business world where electronic-based business transactions are the rule rather than the exception has been a longstanding vision shared by many. A major stumbling block to widespread electronic business transactions is the need to effectively deploy a secure communications system providing privacy, message integrity, non-repudiation and authenticity.
Cryptographic systems have been widely used to ensure the privacy and authenticity of messages communicated over a wide variety of different networks. Many conventional cryptosystems are not satisfactory for widespread business world deployment due to well recognized problems relating to, for example, key distribution.
Public key cryptographic systems have been advantageously utilized to solve existing cryptographic system problems including key distribution problems. Such public key cryptographic systems use a public key/private key pair and decouple the encrypting and decrypting processes such that the encrypting process key is separate and distinct from the decrypting process key. In such systems, given the knowledge of the encryption key and an encryption key that is large enough, it is not viable to compute the decryption key and thus the encryption key for users may be distributed or published. Anyone desiring to communicate with a user at a particular destination, encrypts a message under the destination user's public key. Only the destination user who retains the secret decrypting key of the public key/private key pair is able to decipher the transmitted messages.
In public key cryptographic systems, it is known that a trusted authority may create a digital message which contains a claimant's public key and the name of the claimant. A representative of the trusted authority digitally signs the digital message with the authority's own digital signature. Such a digital message, referred to as a digital certificate is transmitted along with the use of the claimant's own digital signature. See U.S. Pat. No. 4,405,829 issued to Rivest et al., which discloses exemplary methodology for a practical public key cryptographic system implementation. Also see U.S. Pat. No. 5,214,702, which describes a public key digital signature cryptographic system having enhanced digital signature certification.
Existing public key cryptography methodologies envision that electronic business transactions employ a global standard for tying the public key use to a high level global authority, using what is referred to as the X.500 standard. Not all users, however, participate in this global standard, thereby limiting the standard's practical utility.
The present methodology does not rely on a global standard. In accordance with an exemplary embodiment of the present invention, cryptographic keys may be resident in a user's own directory services, while permitting users to securely communicate with each other as a result of using the distributed directory services described herein. The present invention utilizes secure distributed directory services to maintain a public key infrastructure, and does not operate in the conventional global, top-down hierarchy using a "meta-certifier", who must certify all users in order to provide the desired level of security.
In accordance with an exemplary embodiment, users may receive digital certificates from various other users and still securely communicate with each other with sufficient security such that electronic business transactions may be culminated. The present invention incorporates the use of policy statements which efficiently permit trust levels to be applied to a user's service request based upon an analysis by the recipient of the message sender's identity via the distributed directory services system. Thus, the fact that a particular message sender is identified in a given distributed directory service using designated policy statements, permits the message recipient to determine the degree of trust to be given to a message sender.
The exemplary embodiment implements the concept that by being able to uniquely identify a client in a specific communications context, a server can assign the client with specific access rights for that context. The access rights granted to a client depend on the client's identity in that context.
Given that access rights are based on identity, the feature of being able to uniquely identify a client becomes significant. The server requires a secure and infallible method of identifying the client. The infallible method is based on using secure directory services of the nature described in the present exemplary embodiment. By securely receiving identity verification services from a directory service, the server can then determine the access rights to grant to a client. This allows a server to deliver client-sensitive information, without prior knowledge of the client.
In accordance with an exemplary embodiment of the present invention, a client initiates a secure connection with a server providing directory services. The server, taking advantage of the authentication feature in the secure communications methodology described herein, uniquely identifies the client and thus obtains the client's distinguished name (DN). The server uses the client's DN to determine what access rights to grant the client, either by looking up the client's DN in its own directory or by recursively acting as a client to another directory server that contains definitive information about that particular DN. The directory server then returns the information to the client that is specific to that client and is able to do so by taking advantage of the authentication feature provided by the secure communications methodology used herein.
In accordance with another aspect of the present invention, a client initiates a secure communication with a server. The methodology described herein is also applicable to the instance where the client and server are on the same machines so that the network described herein may be internal to the computer in this special case. The server is able to uniquely identify the client based on the authentication feature of the secure communications server as a directory service to verify the identity of the client's DN and for access control permissions to grant to the client. This communication with the directory service must be over a secure communications channel because the information passed on to the client/server communication depends on the result and verification and access rights returned by the directory service. The directory service responds to the server with verification information and access control information, particular to that client and the server is able to determine what information should be sent to the client. The server then returns either none, some or all the information requested by the client.
In an illustrative embodiment, the identities of the parties involved determine the access rights for a directory service's communications context. All requests for information made by the client, receive customized directory service responses. The peer identities are determined through the use of secure communications.
In an exemplary embodiment, the server receives the client's Distinguishing Name (DN), and then searches its directory for identification information and access control rights for this specific context. The server can act as a stand-alone server or in conjunction with other directory services on the network. A client must have a verifiable identity in order for secure communications to continue. A client's identity can be said to be fully verifiable if the server has access to the directory service that maintains that client's DN.
The client receives the server's DN, and the client can then determine whether or not to accept a response to a request for information (i.e., trust the response). The client determines the identity of the server using some directory service (the client can act stand-alone or as a client of other directory servers). A server is fully verifiable if the client can identify the directory service that maintains the server's DN.
In both cases, determining identity is predicated on being able to identify a directory service. Since servers and clients are issued identities (DN's) from some directory service before they participate in secure communications, they are able to at least identify their "home" directory service. Their "home" directory service communicates with other directory services, each "serving" their lists of electronic identities to each other using secure directory services. In this manner, a client or server can verify the peer identity of a secure communicator by relying on the trusted "home" directory service.
The present exemplary implementation of the invention can be used to implement a Public Key Infrastructure in the following manner. Public Key certificates, certificate revocation lists, pending certificate requests, Certification Authority policy, and other information is stored in the directory server. Access to the directory server is through secure communications; this maintains the integrity and privacy of the information. Administrators acting in the capacity of the Certification Authority are granted full access to the repository, by issuing them the "Administrator's DN", and can add new certificates, modify certificate revocation lists, etc. Others would have less access, to the limit that unknown parties may only be allowed to submit certificate requests or download public certificates (and revocation lists). Additionally, certificates can be used as vectors in directory searches; the client attempting the directory search has its access limited by its client DN, and the client's DN may not contain a name at all, but rather a hash of the client's policy. In this manner, certificates can be issued that contain minimal information; in fact, they only need to contain a unique identifier that can be used as a vector in the vector space (this would be the entire namespace that is visible to that particular client).